/*
* Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import { FileTemp } from "../../datatype";

export let idlBuildGn: FileTemp = {
  name: 'BUILD.gn',
  content: `# Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development Co., Ltd.
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  import("//drivers/hdf_core/adapter/uhdf2/hdi.gni")             # 编译idl必须要导入的模板
  hdi("[driverName]") {                                         # 目标名称,会生成两个so,分别对应 lib[driverName]_client_v1.0.z.so 和 lib[driverName]_stub_v1.0.z.so
      module_name = "[driverName]_service"                      # module_name控制dirver文件中驱动描 述符(struct HdfDriverEntry)的moduleName
      sources = [                                                # 参与编译的idl文件
          "I[marcoName]Interface.idl",                           # 接口idl
      ]
      language = "cpp"                                           # 控制idl生成c或c++代码 可选择'c'或'cpp'
      subsystem_name = "hdf"                                     # 子系统名
      part_name = "drivers_interface_[driverName]"              # 组件名
  }
  `
}